Implementing the Nanothreads Programming Model on Top of Posix Threads
نویسندگان
چکیده
Goal of this paper is the efficient and portable implementation of the Nanothreads Programming Model (NPM), a dependence-driven two-level threads model for shared-memory multiprocessors, on top of the POSIX Threads API. Our general approach is to combine portability with efficiency by implementing the machine dependent components of the runtime system based on POSIX threads and defining an appropriate API that any underlying non-preemptive user-level threads package should export in order to get integrated with it. We implement such a portable lightweight threads package based on POSIX calls, and then we replace this package with POSIX threads. On M:N implementation models, we exploit their lightweight process scope POSIX threads. Our approach makes the implementation of NPM fully portable while, on the other hand, provides a significant extension of POSIX threads. The portability of our work allows its experimental evaluation on several operating systems and hardware platforms.
منابع مشابه
An implementation of the SANE Virtual Processor using POSIX threads
The SANE Virtual Processor is an abstract concurrent programming model that is both deadlock free and supports e cient implementation. It is captured by the μTC programming language. The work presented in this paper covers a portable implementation of this model as a C++ library on top of POSIX Threads. Programs in μTC can be translated to the standard C++ syntax and linked with this library to...
متن کاملTowards a Fortran 90 Interface to the POSIX Threads Library
Pthreads is a POSIX standard established to control the spawning, execution and termination of multiple threads within a single process. Because of a much lower overhead, use of Pthreads is an attractive approach. Under this programming paradigm on a shared-memory system, threads execute within a single address space, although multiple processors may be employed to execute the various threads. ...
متن کاملA Fortran 90 Application Programming Interface to the POSIX Threads Library
Pthreads is a POSIX standard established to control the spawning, execution, and termination of multiple threads within a single process. Because of a much lower system overhead, use of Pthreads is an attractive approach. Under this programming paradigm on a shared-memory system, threads execute concurrently within a single address space, although multiple processors may be employed to execute ...
متن کاملPEACE Threads Interface On Microkernel
Recently, thread libraries have become powerful entities to support parallel programming on shared memory multiprocessors and multicomputers. However, the disparity between the primitives offered by the operating systems and thread’s interface creates a challenge for those who wish to create portable threads library. The implementation of PEACE (POSIX Extensions to an Advanced Computing Environ...
متن کاملParallel and Distributed Programming with Pthreads and Rthreads
This paper describes Rthreads (Remote threads), a software distributed shared memory system that supports sharing of global variables on clusters of computers with physically distributed memory. Other DSM systems either use virtual memory to implement coherence on networks of workstations or require programmers to adopt a special programming model. Rthreads uses primitives to read and write rem...
متن کامل